It is desirable for data communication systems to increase data bandwidth so that more data can be transmitted from a transmitter to a receiver in a short amount of time. However, as data bandwidth requirements increase, it becomes increasingly more challenging for the receiver to recover data from the incoming data stream without errors.